#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlTableModel>
#include <QMessageBox>
#include <QDebug>
#include <QSqlError>
#include <QModelIndex>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_addButton_clicked();
    void on_editButton_clicked();
    void on_deleteButton_clicked();
    void on_queryButton_clicked();
    void on_statsButton_clicked();
    void on_refreshButton_clicked();
    void on_tableView_clicked(const QModelIndex &index);
    void on_importCsvButton_clicked();

private:
    Ui::MainWindow *ui;
    QSqlDatabase db;
    QSqlTableModel *model;

    void setupDatabase();
    void setupModel();
    void refreshTable(const QString &filter = "");
    void clearInputFields();
};
#endif 
